package controllers.vecino;

import java.util.Collection;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import services.ComunidadDeVecinosService;
import services.VecinoService;
import controllers.AbstractController;
import domain.ComunidadDeVecinos;
import domain.Vecino;
import forms.ComunidadDeVecinosForm;

@Controller
@RequestMapping("/comunidad/vecino")
public class ComunidadesVecinoController extends AbstractController {

	@Autowired
	private ComunidadDeVecinosService comunidadDeVecinosService;

	@Autowired
	private VecinoService vecinoService;

	public ComunidadesVecinoController() {
		super();
	}

	@RequestMapping(value = "/list", method = RequestMethod.GET)
	public ModelAndView list() {
		ModelAndView result;
		Collection<ComunidadDeVecinos> comunidades;
		Vecino vecino;
		int vecinoId;

		vecino = vecinoService.findByPrincipal();
		vecinoId = vecino.getId();
		comunidades = comunidadDeVecinosService.findByVecino();

		result = new ModelAndView("comunidad/list");
		result.addObject("requestURI", "comunidad/vecino/list.do");
		result.addObject("comunidades", comunidades);
		result.addObject("vecinoId", vecinoId);
		result.addObject("backURI", "/welcome/index.do");

		return result;
	}
	
	// Edition
		@RequestMapping(value = "/edit", method = RequestMethod.GET)
		public ModelAndView edit(@RequestParam int comunidadId) {
			ModelAndView result;
			ComunidadDeVecinosForm cvForm;
			ComunidadDeVecinos cv;
			Boolean isPresident;

			cv = comunidadDeVecinosService.findOne(comunidadId);
			cvForm = comunidadDeVecinosService.comunidadToForm(cv);
			isPresident = vecinoService.findByPrincipal().getComunidadesDeVecinosPresididas().contains(cv);

			result = new ModelAndView("comunidad/edit");
			result.addObject("cvForm", cvForm);
			result.addObject("comunidadId", comunidadId);
			result.addObject("requestURI", "comunidad/administrator/edit.do");
			result.addObject("backURI", "/comunidad/vecino/list.do");
			result.addObject("isPresident", isPresident);

			return result;

		}

}
